﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HR60_PanelSoft.View.Base;
using HR60_PanelSoft.Model.BaseModel;
using HR60_PanelSoft.Model;
using HR60_PanelSoft.View.TabForms.ListItems;
using HR60_PanelSoft.View.Controls;

namespace HR60_PanelSoft.View.TabForms
{
	public partial class SceneForm : BaseForm
	{
		public SceneForm()
		{
			InitializeComponent();

			// 场景类型
			IDictionary typeMap = new Dictionary<string, SceneType>();
			typeMap.Add("自动", SceneType.Auto);
			typeMap.Add("智能", SceneType.ZhiNeng);
			typeMap.Add("布防", SceneType.BuFang);
			typeMap.Add("撤防", SceneType.CheFang);
			typeMap.Add("全关", SceneType.QuanGuan);
			typeMap.Add("全开", SceneType.QuanKai);
			typeMap.Add("总关", SceneType.ZongGuan);
			typeMap.Add("总开", SceneType.ZongKai);
			typeMap.Add("回家", SceneType.HuiJia);
			typeMap.Add("离家", SceneType.LiJia);
			typeMap.Add("就寝", SceneType.JiuQin);
			typeMap.Add("起夜", SceneType.QiChuang);
			typeMap.Add("起床", SceneType.QiChuang);
			typeMap.Add("就餐", SceneType.JiuCan);
			typeMap.Add("凉爽", SceneType.LiangShuang);
			typeMap.Add("温暖", SceneType.WenNuan);
			typeMap.Add("电视", SceneType.DianShi);
			typeMap.Add("影院", SceneType.YingYuan);
			typeMap.Add("音乐", SceneType.YinYue);
			typeMap.Add("娱乐", SceneType.YueLe);
			typeMap.Add("阅读", SceneType.YueDu);
			typeMap.Add("会客", SceneType.HuiKe);
			typeMap.Add("生日", SceneType.ShengRi);
			typeMap.Add("宴会", SceneType.YanHui);
			typeMap.Add("用户", SceneType.YongHu);
			selType.bindData(typeMap);

		}


		// 绑定数据
		public override void refreshFormData(System.Collections.Generic.IDictionary<string, object> dataMap)
		{
			Scene scene = (Scene)dataMap["scene"];
			txtName.Value = scene.name;
			txtLampAreaId.Value = scene.lampAreaId;
			txtLampSceneId.Value = scene.lampSceneId;

			// 单控设备列表
			sceneDeviceList.init(scene);

			// 高级设备列表
			divExDevice.Controls.Clear();
			createAttrList(findExDevice(ExDeviceType.CentralAircon), scene);
			createAttrList(findExDevice(ExDeviceType.CentralHeating), scene);
			createAttrList(findExDevice(ExDeviceType.CentralNewWind), scene);
			createAttrList(findExDevice(ExDeviceType.BGM), scene);

		}

		private void createAttrList(Device exDev, Scene scene)
		{
			if (exDev != null)
			{
				// 设备名称
				DivPanel dp = new DivPanel();
				dp.Padding = new Padding(0);
				dp.Margin = new Padding(0);
				dp.Height = 25;
				
				Label ltlName = new Label();
				ltlName.Text = exDev.nickName;

				dp.Controls.Add(ltlName);
				divExDevice.Controls.Add(dp);
				
				// 分机列表
				foreach (Device sub in exDev.childDevices)
				{
					SceneAttrList attrList = new SceneAttrList();
					attrList.init(sub, scene);
					divExDevice.Controls.Add(attrList);
				}
			}
		}

		// 数据修改事件
		public override void onFormChanged(BaseFormControl sender, System.EventArgs e)
		{
			
		}
	}
}
